package net.ericaro.neojavagen.blocks;

/**
 * <b>ForStatementNoShortIf</b> ::= "for" "(" <{@link net .ericaro .neojavagen .blocks .ForInit ForInit}>? ";" <
 * {@link net .ericaro .neojavagen .expressions .Expression Expression}>? ";" <{@link net .ericaro .neojavagen .blocks .ForUpdate ForUpdate}>? ")" <
 * {@link net .ericaro .neojavagen .blocks .StatementNoShortIf StatementNoShortIf}>
 * 
 * @author eric@ericaro.net
 */
public class ForStatementNoShortIf extends net.ericaro.neojavagen.JavaPartComposition implements net.ericaro.neojavagen.blocks.StatementNoShortIf {
	private net.ericaro.neojavagen.expressions.Expression expression;

	private net.ericaro.neojavagen.blocks.ForInit forInit;

	private net.ericaro.neojavagen.blocks.ForUpdate forUpdate;

	private net.ericaro.neojavagen.blocks.StatementNoShortIf statementNoShortIf;

	public ForStatementNoShortIf(net.ericaro.neojavagen.blocks.ForInit forInit, net.ericaro.neojavagen.expressions.Expression expression, net.ericaro.neojavagen.blocks.ForUpdate forUpdate, net.ericaro.neojavagen.blocks.StatementNoShortIf statementNoShortIf) {
		super();
		this.forInit = forInit;
		this.expression = expression;
		this.forUpdate = forUpdate;
		this.statementNoShortIf = statementNoShortIf;
	}

	public ForStatementNoShortIf(net.ericaro.neojavagen.blocks.StatementNoShortIf statementNoShortIf) {
		this.forInit = null;
		this.expression = null;
		this.forUpdate = null;
		this.statementNoShortIf = statementNoShortIf;
	}

	public net.ericaro.neojavagen.expressions.Expression getExpression() {
		return expression;
	}

	public net.ericaro.neojavagen.blocks.ForInit getForInit() {
		return forInit;
	}

	public net.ericaro.neojavagen.blocks.ForUpdate getForUpdate() {
		return forUpdate;
	}

	public net.ericaro.neojavagen.blocks.StatementNoShortIf getStatementNoShortIf() {
		return statementNoShortIf;
	}

	public void setExpression(net.ericaro.neojavagen.expressions.Expression expression) {
		this.expression = expression;
	}

	public void setForInit(net.ericaro.neojavagen.blocks.ForInit forInit) {
		this.forInit = forInit;
	}

	public void setForUpdate(net.ericaro.neojavagen.blocks.ForUpdate forUpdate) {
		this.forUpdate = forUpdate;
	}

	public void setStatementNoShortIf(net.ericaro.neojavagen.blocks.StatementNoShortIf statementNoShortIf) {
		this.statementNoShortIf = statementNoShortIf;
	}

	@Override
	public java.lang.String toString() {
		return print("for", "(", forInit, ";", expression, ";", forUpdate, ")", statementNoShortIf);
	}
}
